package com.hk.commons.entity.yingmi;

import com.hk.commons.enm.Whether;
import com.hk.commons.entity.IdEntity;

import javax.persistence.*;
import java.math.BigDecimal;

/**
 * Created by Antinomy on 17/2/20.
 */
@Entity
@Table(name = "t_yingmi_broker_product")
public class YingmiBrokerProduct extends IdEntity {

    @Column(columnDefinition = "varchar(10) NOT NULL comment '基金代码'", unique = true)
    private String fundCode;

    @Column(columnDefinition = "varchar(10) comment '产品类型'")
    private String prodType;

    @Column(columnDefinition = "varchar(10) comment '五级风险等级'")
    private String risk5Level;

    @Column(columnDefinition = "varchar(10) comment '协会标准基金五级风险'")
    private String amacRisk5Level;

    @Column(columnDefinition = "varchar(255) comment '基金全称'")
    private String fundFullName;

    @Column(columnDefinition = "varchar(255) comment '基金名称'")
    private String fundName;

    @Column(columnDefinition = "varchar(500) comment '预期收益率描述文本'")
    private String expectedReturnDesc;

    @Column(columnDefinition = "varchar(255) comment '产品存续期描述文本'")
    private String durationDesc;

    @Column(columnDefinition = "DECIMAL(18,4) comment '个人首次认购最低金额'")
    private BigDecimal minIndividualSubscribeAmount;

    @Column(columnDefinition = "varchar(10) NOT NULL comment '是否分享'")
    @Enumerated(EnumType.STRING)
    private Whether enable = Whether.YES;

    @Column(columnDefinition = "text comment '申购开放日期'")
    private String allotOpenDate;

    @Column(columnDefinition = "text comment '赎回开放日期'")
    private String redeemOpenDate;

    @Column(columnDefinition = "text comment '认购开放日期'")
    private String subscribeOpenDate;

    public String getFundCode() {
        return fundCode;
    }

    public void setFundCode(String fundCode) {
        this.fundCode = fundCode;
    }

    public String getProdType() {
        return prodType;
    }

    public void setProdType(String prodType) {
        this.prodType = prodType;
    }

    public String getRisk5Level() {
        return risk5Level;
    }

    public void setRisk5Level(String risk5Level) {
        this.risk5Level = risk5Level;
    }

    public String getAmacRisk5Level() {
        return amacRisk5Level;
    }

    public void setAmacRisk5Level(String amacRisk5Level) {
        this.amacRisk5Level = amacRisk5Level;
    }

    public String getFundFullName() {
        return fundFullName;
    }

    public void setFundFullName(String fundFullName) {
        this.fundFullName = fundFullName;
    }

    public String getFundName() {
        return fundName;
    }

    public void setFundName(String fundName) {
        this.fundName = fundName;
    }

    public String getExpectedReturnDesc() {
        return expectedReturnDesc;
    }

    public void setExpectedReturnDesc(String expectedReturnDesc) {
        this.expectedReturnDesc = expectedReturnDesc;
    }

    public String getDurationDesc() {
        return durationDesc;
    }

    public void setDurationDesc(String durationDesc) {
        this.durationDesc = durationDesc;
    }

    public Whether getEnable() {
        return enable;
    }

    public void setEnable(Whether enable) {
        this.enable = enable;
    }

    public BigDecimal getMinIndividualSubscribeAmount() {
        return minIndividualSubscribeAmount;
    }

    public void setMinIndividualSubscribeAmount(BigDecimal minIndividualSubscribeAmount) {
        this.minIndividualSubscribeAmount = minIndividualSubscribeAmount;
    }

    public String getAllotOpenDate() {
        return allotOpenDate;
    }

    public void setAllotOpenDate(String allotOpenDate) {
        this.allotOpenDate = allotOpenDate;
    }

    public String getRedeemOpenDate() {
        return redeemOpenDate;
    }

    public void setRedeemOpenDate(String redeemOpenDate) {
        this.redeemOpenDate = redeemOpenDate;
    }

    public String getSubscribeOpenDate() {
        return subscribeOpenDate;
    }

    public void setSubscribeOpenDate(String subscribeOpenDate) {
        this.subscribeOpenDate = subscribeOpenDate;
    }
}
